package com.kd.enums.order;

public enum OrderStatus {
    PENDING_ACTIVATE(0, "订单待激活"),  // 待激活
    PRODUCING(1, "生产中"),              // 生产中
    DELIVERED(2, "已送达"),              // 已送达
    SETTLED(3, "已结算");                // 已结算

    private final Integer code;  // 数据库存储的数值（如0、1）
    private final String desc;   // 前端显示的描述（如“生产中”）

    // 构造方法+getter
    OrderStatus(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }
    public Integer getCode() { return code; }
    public String getDesc() { return desc; }

    // 2. 提供“数值转枚举”方法（用于后端校验和映射）
    public static OrderStatus getByCode(Integer code) {
        for (OrderStatus status : values()) {
            if (status.getCode().equals(code)) {
                return status;
            }
        }
        throw new IllegalArgumentException("非法订单状态：" + code); // 校验非法值
    }
}
